iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0

此章專講迴圈

for迴圈

  • for迴圈式為Java提供的重複性執行敘述其中之一。
    for 語法結構如下:
for(初始化;判斷條件式;遞增式){
    程式敘述一;
    程式敘述二;
}

程式範例試做(1):

public class Alex0922_1{
    public static void main (String[] args){
        for(int i = 0; i < 10; i++);
            System.out.print(" "+i);
    }
}

執行結果:

1 2 3 4 5 6 7 8 9

程式範例試做(2):

public class Alex0922_2{
    public static void main (String[] args){
        int sum = 0;
        for(int i = 1; i <= 10; i++);
            sum+=i;
        for(int i = 1; i <= 10; i++);
            factorial*=i;
        System.out.print("級數和:"+sum+"\t階層積:+factorial);
    }
}

執行結果:

級數和:55 階層積:3628800

for迴圈的「遞增式」不一定是增加某一個變數值,遞增式只是迴圈區域程式執行後會接著執行的敘述。

for巢狀迴圈

  • 巢狀迴圈是指在迴圈中包含另一個迴圈,且不限只有一個內部迴圈。
    程式範例試做:
public class Alex0922_3{
    public static void main (String[] args){
        int num = 5;
        for(int i = 1; i<=num; i++){
            for(int j = num-i; j < 10; j--)
                System.out.print("");
            for (int k = 1; k <=(i*2-1);k++)
                System.out.println("*");
            System.out.println();
        }
    }
}

程式執行結果

    *
   ***
  *****
 *******
*********

while 迴圈

  • while 包含兩種迴圈的語法:
    (1)前測試迴圈:先判斷,條件符合才執行迴圈內敘述。
    (2)後測試迴圈:先執行迴圈內的敘述才進行判斷。
  • while迴圈語法:
while(判斷條件){
    程式敘述一;
    程式敘述二;
}

程式範例試做:

import java.util.Scanner;
public class Alex0922_4{
    public static void main (String[] args){
        Scanner sc = new Scanner(System.in);
        int score = 0;
        int sum = 0;
        int cnt = -1;
        while(score != -1){
            cnt++;
            sum += score;
            System.out.print("輸入分數(-1結束):");
            score = sc.nextInt();
        }
        System.out.println("學生人數:"+cnt+",平均分數:+(double)sum/cnt);
    }
}

程式執行結果:

輸入分數(-1結束):77
輸入分數(-1結束):52
輸入分數(-1結束):89
輸入分數(-1結束):64
輸入分數(-1結束):93
輸入分數(-1結束):-1
學生人數:5, 平均分數:75

do...while 迴圈

  • do...while 與 while 差別就是先執行還是先判斷。如果程式是一間餐廳,while就像一般連鎖快餐店,先付錢才能吃,而do...while則像路邊的百元熱炒,吃完再付款就行了。
    do...while 語法如下:
do{
 程式敘述一;
 程式敘述二;
}while (判斷條件);

程式範例試做:

import java.util.Scanner;
public class Alex0922_5{
    public static void main(String[] args){
        Scanner sc = new Scanner (System.in);
        int ans = (int Math.random() * 100);
        int guess;
        do {
            System.out.print("請選擇終極密碼答案:");
            guess = sc.nextInt();
            if(guess > ans)
                System.out.println("太大囉!");
            else if (guess < an)
                System.out.println("太小囉!");
        }while (guess != ans);
        System.out.println("恭喜,猜中了!");
    }
}     

程式執行結果:

  • 此次電腦擇數為8,顯示結果如下。
請選擇終極密碼答案:5
太小囉!
請選擇終極密碼答案:8
恭喜,猜中了!

本章歸納出下三點總結:
1.有明確起迄迴圈執行次數,適用for。
2.沒有明確執行迴圈的次數,須先判斷條件在執行區域內程式,適用while。
3.沒有明確執行迴圈的次數,須先執行區域內程式,再判斷條件之情況,適用do...while


上一篇
Java流程控制-1
下一篇
Java流程控制-3
系列文
自學Java物件導向程式語言30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言